草庐IT

objective-c - GCD 和异步 NSURLConnection

全部标签

c# - 使用 TPL 实现经典异步模式

我正在尝试为WF4实现自定义TrackingParticipant。我可以编写Track方法,但我的实现会很慢。如何使用.NET4.0的任务并行库(TPL)实现Begin/EndTrack覆盖?我看过TPLandTraditional.NETAsynchronousProgramming但我不确定如何在这里应用它。请注意,TrackingParticipant是.NET的一部分,并且具有使用虚拟方法预定义的经典异步模式。publicclassMyTrackingParticipant:TrackingParticipant{protectedoverrideIAsyncResultBe

c# - XmlWriter 异步方法

我在msdn文档中找到了异步使用XmlWriter的示例http://msdn.microsoft.com/en-us/library/system.xml.xmlwriter.aspxasyncTaskTestWriter(Streamstream){XmlWriterSettingssettings=newXmlWriterSettings();settings.Async=true;using(XmlWriterwriter=XmlWriter.Create(stream,settings)){awaitwriter.WriteStartElementAsync("pf","ro

c# - 在没有不可变字段的类中覆盖 Object.GetHashCode() 时返回什么?

好吧,在你因为互联网上发布了数百个听起来相似的问题而生气之前,我可以向你保证,我刚刚花了最后几个小时阅读了所有并且没有找到了我的问题的答案。背景:基本上,我的一个大型应用程序一直遇到这样一种情况,即ListBox.SelectedItem属性上的某些Binding会停止工作,或者程序会在之后崩溃对当前选定的项目进行了编辑。我最初问'Anitemwiththesamekeyhasalreadybeenadded'ExceptiononselectingaListBoxItemfromcode在这里提问,但没有得到答案。直到本周我才有时间解决这个问题,当时我有几天时间来解决它。现在长话短说

WPF异步编程总结

文章目录前言一、Thread1.不存在上下文同步的Thread2.存在上下文同步的Thread3.线程池ThreadPool4.粗粒度的BackgroundWorker二、Task1.不存在上下文同步的Task2.Continuation3.ContinueWith4.TaskCompletionSource5.存在上下文同步的Task6.async&await7.异步中的进度报告8.task组合器三、异常捕获总结前言本文会学习到Thread、Task,线程池,后台线程,前台线程,Continuation方法,关键字async,await、异步中的进度报告、粗粒度细粒度、Task组合器和异步过

c# - 如何断言 C# 异步方法在单元测试中引发异常?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowdoItestanasyncmethodwithNUnit,eventuallywithanotherframework?我想知道的是如何在C#单元测试中断言异步方法抛出异常?我能够在VisualStudio2012中使用Microsoft.VisualStudio.TestTools.UnitTesting编写异步单元测试,但还没有弄清楚如何测试异常。我知道xUnit.net也以这种方式支持异步测试方法,虽然我还没有尝试过那个框架。为了说明我的意思,下面的代码定义了被测系统:usingSystem;u

c# - 补偿异步方法中缺少 'out' 参数。

我有一个类可以处理我正在处理的应用程序中的所有API事务。其方法的大纲如下所示:publicstaticasyncTaskAPICall(intbla){HttpResponseMessageresponse;boolres;//Post/GetAsynctoserverdependingoncall+otherlogicreturnres;}我想做的是也能够将response.StatusCode返回给调用者,但由于我们不允许将“out”参数与异步方法一起使用,所以这会使事情变得有点复杂。我正在考虑返回一个包含bool值和响应代码的元组,有没有更好的方法来做到这一点?

c# - 如何序列化异步/等待?

假设我有这个简单的片段:asyncvoidbutton_Click(objectsender,RoutedEventArgse){awaitTask.Factory.StartNew(()=>{Console.WriteLine("start");Thread.Sleep(5000);Console.WriteLine("end");});}显然,每次我按下该按钮时,都会启动一个新任务,即使之前的任务仍在运行。我如何将任何新任务推迟到所有以前的任务完成之前?更多细节:在上面的示例中,每个新任务都与之前的任务相同。然而,在原始上下文中,任务的顺序很重要:参数可能会改变(我可以使用Date

c# - 发送邮件异步 : An asynchronous module or handler completed while an asynchronous operation was still pending

在使用SendMailAsync时出现以下错误:Anasynchronousmoduleorhandlercompletedwhileanasynchronousoperationwasstillpending我的代码:publicstaticasyncTaskSendEmail(MessageContentmessageContent,stringemailBody){SmtpClientsmtpClientNoSend=newSmtpClient();awaitsmtpClientNoSend.SendMailAsync(mailMessage);}来自Controller的调用:

c# - 为什么异步委托(delegate)方法需要调用 EndInvoke?

为什么委托(delegate)需要在方法触发之前调用EndInvoke?如果我需要调用EndInvoke(它会阻塞线程)那么它不是真正的异步调用吗?这是我要运行的代码。classProgram{privatedelegatevoidGenerateXmlDelegate();staticvoidMain(string[]args){GenerateXmlDelegateworker=newGenerateXmlDelegate(GenerateMainXml);IAsyncResultresult=worker.BeginInvoke(null,null);}privatestatic

c# - Entity Framework 6 异步操作和 TranscationScope

我在stackoverflow上搜索,没有找到类似的问题,如果已经有请指出我。我试图通过同步和异步操作实现一个通用的可重用存储库,但由于我对EntityFramework和工作单元知之甚少,我正在努力寻找实现它的正确方法。我在SaveAndCommit操作上添加了一些变体,但不知道使用事务和异步执行此操作的最佳方法是什么。----Edit----AspermyunderstandingtransactionsshouldbeusedwhenmorethanoneoperationsisperformedbutforunderstandingpurposesIuseditforoneop